// 1. 等待中（从承诺开始，从new Promise开始，一直到得到结果为止）
// 2. 最终状态之一：成功
// 3. 最终状态之一：失败

// 特点：一旦到达了最终状态，结果就不会再改变了。

let p = new Promise((resolve, reject) => {
  resolve(1); // 调用resolve，表示Promise到达了最终状态，成功的状态
  reject(2); // 调用了reject，表示Promise到达了最终状态，失败的状态。由于前面已经调用了resolve，所以这次调用无效
  setTimeout(() => {
    resolve(3); // 这里调用也是无效
  }, 1000)
});

p.then(res => {
  console.log(res);
}, err => {
  console.log(err);
})
